Leadtools.ColorConversion Namespace > IccProfileExtended Class > IccProfileExtended Constructor : IccProfileExtended Constructor(IccHeader,IccTagList,Byte[],Byte[]) |
'Declaration Public Function New( _ ByVal header As IccHeader, _ ByVal tagList As IccTagList, _ ByVal tagData() As Byte, _ ByVal data() As Byte _ )
'Usage Dim header As IccHeader Dim tagList As IccTagList Dim tagData() As Byte Dim data() As Byte Dim instance As New IccProfileExtended(header, tagList, tagData, data)
public: IccProfileExtended( IccHeader header, IccTagList tagList, array<byte>^ tagData, array<byte>^ data )
Public Sub IccProfileExtendedConstructorExample() ' load an Icc Profile Dim iccProfile As New IccProfileExtended(Path.Combine(LEAD_VARS.ImagesDir, "ICCv42.icc")) ' create the new header Dim header As IccHeader = IccHeader.Empty header.CmmID = &H6170706C header.DeviceClass = IccProfileClassType.DeviceLinkClass header.ColorSpace = IccColorspaceType.LabData header.Pcs = IccColorspaceType.LabData header.ProfileSignature = &H61637370 header.Platform = IccPlatformSignatureType.MacintoshSignature header.Flags = IccProfileFlags.None header.Manufacturer = &H46464549 header.Model = 0 header.Attributes = IccProfileMediaFlags.ColorMedia header.RenderingIntent = IccRenderingIntentType.AbsoluteColorimetric header.Creator = &H46464549 ' set the system date/time as the date/time of the Icc Profile Dim sysDateTime As System.DateTime = System.DateTime.Now Dim iccDateTime As New IccDateTime(CUShort(sysDateTime.Year), _ CUShort(sysDateTime.Month), _ CUShort(sysDateTime.Day), _ CUShort(sysDateTime.Hour), _ CUShort(sysDateTime.Minute), _ CUShort(sysDateTime.Second)) header.DateTime = iccDateTime ' copy the tag data Dim counter, numberOfTags As Integer numberOfTags = iccProfile.TagList.Tags.Length Dim tags(numberOfTags - 1) As IccTag For counter = 0 To (numberOfTags - 1) tags(counter) = New IccTag(iccProfile.TagList.Tags(counter).Signature, _ iccProfile.TagList.Tags(counter).Offset, _ iccProfile.TagList.Tags(counter).Size) Next counter Dim tagsList As New IccTagList(tags) ' copy the tag data Dim tagData(iccProfile.TagData.Length - 1) As Byte iccProfile.TagData.CopyTo(tagData, 0) ' create the new ICC profile, the Data array parameter will not be passed, because it will be ' updated when calling UpdateDataArray() method. Dim newIccProfile As New IccProfileExtended(header, tagsList, tagData, Nothing) ' generate the profileId. For the time being, it will be filled with 0's newIccProfile.GenerateProfileId() ' finally generate the new Icc Profile by updating the Data Array ' and then generating the file newIccProfile.UpdateDataArray() newIccProfile.GenerateIccFile(Path.Combine(LEAD_VARS.ImagesDir, "IccProfileExtendedConstructorVB.icc")) End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
public void IccProfileExtendedConstructorExample() { // load an Icc Profile string IccfileName = Path.Combine(LEAD_VARS.ImagesDir, "ICCv42.icc"); IccProfileExtended iccProfile = new IccProfileExtended(IccfileName); // create the new header IccHeader header = IccHeader.Empty; header.CmmID = 0x6170706C; // any CMM ID header.DeviceClass = IccProfileClassType.DeviceLinkClass; header.ColorSpace = IccColorspaceType.LabData; header.Pcs = IccColorspaceType.LabData; header.ProfileSignature = 0x61637370; // any profile signature header.Platform = IccPlatformSignatureType.MacintoshSignature; header.Flags = IccProfileFlags.None; header.Manufacturer = 0x46464549; // any manufacturer header.Model = 0x0; // any model header.Attributes = IccProfileMediaFlags.ColorMedia; header.RenderingIntent = IccRenderingIntentType.AbsoluteColorimetric; header.Creator = 0x46464549; // any creator // set the system date/time as the date/time of the Icc Profile System.DateTime sysDateTime = System.DateTime.Now; IccDateTime iccDateTime = new IccDateTime((ushort)sysDateTime.Year, (ushort)sysDateTime.Month, (ushort)sysDateTime.Day, (ushort)sysDateTime.Hour, (ushort)sysDateTime.Minute, (ushort)sysDateTime.Second); header.DateTime = iccDateTime; // copy the tag list int counter, numberOfTags; numberOfTags = iccProfile.TagList.Tags.Length; IccTag[] tags = new IccTag[numberOfTags]; for (counter = 0; counter < numberOfTags; counter++) { tags[counter] = new IccTag(iccProfile.TagList.Tags[counter].Signature, iccProfile.TagList.Tags[counter].Offset, iccProfile.TagList.Tags[counter].Size); } IccTagList tagList = new IccTagList(tags); // copy the tag data byte[] tagData = new byte[iccProfile.TagData.Length]; iccProfile.TagData.CopyTo(tagData, 0); // create the new ICC profile, the Data array parameter will not be passed, because it will be // updated when calling UpdateDataArray() method. IccProfileExtended newIccProfile = new IccProfileExtended(header, tagList, tagData, null); // generate the profileId. For the time being, it will be filled with 0's newIccProfile.GenerateProfileId(); // finally generate the new Icc Profile by updating the Data Array // and then generating the file newIccProfile.UpdateDataArray(); string IccExtfile = Path.Combine(LEAD_VARS.ImagesDir, "IccProfileExtendedConstructorCS.icc"); newIccProfile.GenerateIccFile(IccExtfile); } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2